<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'        ));
require_once(BaseConfig::LoadClass('filtro.class.php'             ));
require_once(BaseConfig::LoadClass('abc.class.php'                ));
require_once(BaseConfig::LoadClass('plugin_abc.class.php'         ));
require_once(BaseConfig::LoadClass('cotizador_extendido.class.php'));
require_once(BaseConfig::LoadClass('log.class.php'                ));

class CoberturasPaquete extends ObjetoBase {
  var $intIdCotizacion ;
  var $intIdCobertura  ;
  var $strNombre       ;
  var $intPaqGold      ;
  var $intPaqAmplio    ;
  var $intPaqLimitado  ;
  var $intPaqBasico    ;
  var $intPaqSegmentado;
  var $strCodigoTabla  ;
  var $intOrden        ;
  
  function CoberturasPaquete($intIdCobertura = 0) {
    $arrMapaDatos = Array();
    
    $arrMapaDatos['id_cotizacion' ] = Array('NombreVariable' => 'intIdCotizacion' , 'TipoVariable' => 'N');
    $arrMapaDatos['id_cobertura'  ] = Array('NombreVariable' => 'intIdCobertura'  , 'TipoVariable' => 'N');
    $arrMapaDatos['nombre'        ] = Array('NombreVariable' => 'strNombre'       , 'TipoVariable' => 'S');
    $arrMapaDatos['paq_gold'      ] = Array('NombreVariable' => 'intPaqGold'      , 'TipoVariable' => 'N');
    $arrMapaDatos['paq_amplio'    ] = Array('NombreVariable' => 'intPaqAmplio'    , 'TipoVariable' => 'N');
    $arrMapaDatos['paq_limitado'  ] = Array('NombreVariable' => 'intPaqLimitado'  , 'TipoVariable' => 'N');
    $arrMapaDatos['paq_basico'    ] = Array('NombreVariable' => 'intPaqBasico'    , 'TipoVariable' => 'N');
    $arrMapaDatos['paq_segmentado'] = Array('NombreVariable' => 'intPaqSegmentado', 'TipoVariable' => 'N');
    $arrMapaDatos['codigo_tabla'  ] = Array('NombreVariable' => 'strCodigoTabla'  , 'TipoVariable' => 'S');
    $arrMapaDatos['orden'         ] = Array('NombreVariable' => 'intOrden'        , 'TipoVariable' => 'N');
    
    $this->__ArmarDatosPrivados('cat_coberturas_paquete', $arrMapaDatos, 'id_cobertura');
    $this->SeleccionarPorIndice($intIdCobertura);
  }
}

class FiltroCoberturasPaquete extends Filtro {
  function FiltroCoberturasPaquete() {
    $arrProceso['nombre'        ] = "Nombre"            ;
    $arrProceso['id_cobertura'  ] = "Cobertura"         ;
    $arrProceso['paq_gold'      ] = "Paquete Gold"      ;
    $arrProceso['paq_amplio'    ] = "Paquete Amplio"    ;
    $arrProceso['paq_limitado'  ] = "Paquete Limitado"  ;
    $arrProceso['paq_basico'    ] = "Paquete Basico"    ;
    $arrProceso['paq_segmentado'] = "Paquete Segmentado";
    $arrProceso['codigo_tabla'  ] = "Codigo Tabla"      ;
    $arrProceso['orden'         ] = "Orden"             ;
    
    $arrReferencias["paq_gold"      ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_amplio"    ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_limitado"  ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_basico"    ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_segmentado"]["datos"] = array("0" => "No", "1" => "Si");
    
    parent::CrearFiltro("cat_coberturas_paquete", "id_cobertura", $arrProceso, "Busqueda", "", "orden ASC", "ConductosPago", $arrReferencias);
  }
}

class PluginABC_CoberturasPaquete extends PluginABC {
  function PluginABC_CoberturasPaquete() {
    $this->strNombreBoton   = "Obtener Coberturas de Paquetes desde WEB Service";
    $this->bolLlevaDosPasos = false;
  }
  
  function EjecutarPlugin() {
    Variables::SmallTimeLap(true, "PluginEjec");
    $oCotizador  = new CotizadorExtendido();
    $oConecta    = new Conecta();
    $strConsulta = "TRUNCATE TABLE cat_coberturas_paquete";
    $oConecta->Consulta($strConsulta);
    
    $oCobertura  = new CoberturasPaquete();
    $oCobertura->__strNombreIndice = "";
    $oCobertura->__arrMapaTipos["id_cobertura"] = "N";
    
    $oCotizador->cargaCoberturasXPaquete();
    $arrRespuesta = $oCotizador->ObtenerArregloRespuesta();

    $intContadorCargas = 0;
    $strRes = "";
    foreach($arrRespuesta as $arrInfoCol) {
      $oCobertura->LimpiarObjeto();
      $oCobertura->LlenarObjeto($arrInfoCol);
      $oCobertura->GuardarObjeto();
      
      if(!($intContadorCargas % 3)) {
        if($intContadorCargas) {
          $strRes .= "</tr>";
        }
        $strRes .= "<tr>";
      }
      $intContadorCargas++;
      $strRes .= "<td class='ColumnasAlternas" . Variables::Alternar() . "'>{$oCobertura->strNombre}</td>";
    }
    
    $strRes .= "</tr>";
    $strRes .= "</table>";
    
    $fltLapTime = Variables::SmallTimeLap(false, "PluginEjec");
    $strUnidadMedidaLap = "segundos";
    if($fltLapTime > 180) {
      $fltLapTime /= 60;
      $strUnidadMedidaLap = "minutos";
      if($fltLapTime >= 120) {
        $fltLapTime /= 60;
        $strUnidadMedidaLap = "horas";
      }
    }
    
    $strRes = "<tr><th colspan='3'>Se cargaron $intContadorCargas datos (Tiempo: " . sprintf("%0.4f", $fltLapTime) . " $strUnidadMedidaLap):</th></tr>" . $strRes;
    $strRes = "<table class='TablaReportes'>" . $strRes;
    
    return $strRes;
  }
}

class ABC_CoberturasPaquete extends ABC_Base {
  function ABC_CoberturasPaquete() {
    error_reporting(E_ALL);
    $strClaseBase     = "CoberturasPaquete"      ;
    $strClaseFiltro   = "FiltroCoberturasPaquete";
    $strCampoMostrar  = "nombre"                 ;
    $strOpcionListado = "abc_coberturas_paquete" ;
    $strOpcionGuardar = "abc_coberturas_paquete" ;
    $strClaseCarga    = ""                       ;

    $arrNombresColumnas = array();
    $arrNombresColumnas['nombre'        ] = "Nombre"            ;
    $arrNombresColumnas['id_cobertura'  ] = "Cobertura"         ;
    $arrNombresColumnas['paq_gold'      ] = "Paquete Gold"      ;
    $arrNombresColumnas['paq_amplio'    ] = "Paquete Amplio"    ;
    $arrNombresColumnas['paq_limitado'  ] = "Paquete Limitado"  ;
    $arrNombresColumnas['paq_basico'    ] = "Paquete Basico"    ;
    $arrNombresColumnas['paq_segmentado'] = "Paquete Segmentado";
    $arrNombresColumnas['orden'         ] = "Orden"             ;
    $arrNombresColumnas['codigo_tabla'  ] = "Codigo Tabla"      ;

    $arrReferencias = array();
    $arrReferencias["paq_gold"      ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_amplio"    ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_limitado"  ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_basico"    ]["datos"] = array("0" => "No", "1" => "Si");
    $arrReferencias["paq_segmentado"]["datos"] = array("0" => "No", "1" => "Si");
    
    $arrPlugIns               = array();
    $arrPlugIns["Globales"][] = "PluginABC_CoberturasPaquete"      ;
//    $arrPlugIns["Locales" ][] = "PluginABC_CoberturasPaquete_Local";
    
    $this->Inicializar($strClaseBase, $arrNombresColumnas, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias, "", $strClaseCarga);
    $this->arrPlugIns = $arrPlugIns;
    
    $this->bolABCLista             = true ;
    $this->bolABCListaOcultarTD    = true ;
    $this->bolPosibleNuevoElemento = false;
    $this->intTipoGuardado         = 1    ;
    $this->intNumeroRes            = 20   ;
    $this->bolSoloLectura          = true ;
    $this->bolOcultarTituloEnLista = true ;
    $this->bolABCListaMostrarInfo  = true ;
  }
}

?>